#include<linux/module.h>
#include<linux/kernel.h>
#include<linux/init.h>
#include<linux/list.h>
#include<linux/param.h>
#include<asm/msr.h>
#include<linux/sched.h>
#include<linux/interrupt.h>
#include<linux/timer.h>

void timer_function(unsigned long a){
	struct task_struct *p = (struct task_struct*)a; 
	wake_up_process(p); 
	printk("timer test\n"); 
}
void tasklet_function(unsigned long a){
	printk("in tasklet: %ul\n", a); 
}

static int __init lkp_init(void)
{
	/*
	struct timer_list mytimer; 
	init_timer(&mytimer); 
	mytimer.data=(unsigned long)current;
	mytimer.expires=jiffies+10*HZ;
	mytimer.function=timer_function; 
	add_timer(&mytimer); 
	set_current_state(TASK_INTERRUPTIBLE); 
	*/
	/*
	struct tasklet_struct task; 
	tasklet_init(&task, tasklet_function, 10); 
	tasklet_schedule(&task);
	*/

	return 0; 
}

static void __exit lkp_exit(void)
{
	printk(KERN_ALERT "hello,quit\n"); 
}

module_init(lkp_init); 
module_exit(lkp_exit); 


MODULE_LICENSE("GPL");
